#include <stdio.h>

// int main()      //测试相同变量的地址
// {
//     int val1 = 100;
//     int val2 = 200;
//     char sex='m';
//     int val3 = 300;
//     printf("%p\n", &val1);
//     printf("%p\n", &val2);
//     printf("%p\n", &sex);
//     printf("%p\n", &val3);
//     return 0;
// }

// int main()
// {
//     // 数组的定义
//     // int num[x]   x表示数组里元素的数量
//     int num[8]={0};     //{0}: 数组的初始化
//     // 数组的赋值
//     num[0] = 70;
//     num[1] = 90;
//     num[2] = 97;
//     num[3] = 78;
//     num[7] = 123;
//          //数组的地址
//     printf("%p\n", &num[0]);
//     printf("%p\n", &num[1]);
//     printf("%p\n", &num[2]);
//     printf("%p\n", &num[3]);
//     printf("%p\n", &num[4]);
//     printf("%p\n", &num[5]);
//     printf("%p\n", &num[6]);
//     printf("%p\n", &num[7]);
//     printf("%p\n", &num[10]);
//        //数组的取值
//     printf("\n");
//     for (int i = 0; i < 8; i++)
//     {
//        printf("%d\n", num[i]);
//     }
//     printf("\n");
//      //数组的内存
//     int length=sizeof(num);
//     printf("length=%d\n",length);
//     return 0;
// }

/*int main()          //计算数组里元素的数量
{
    int arr[]={1,2,3,4,5,6,7,8,9};

    //[] : 下标引用操作符
    //printf("%d\n",arr[4]);    //结果为5

    int size=sizeof(arr);     //计算数组一共占了多少字节
    printf("%d\n",size);

    size=sizeof(arr[0]);      //计算一个数组元素占了几个字节
    printf("%d\n",size);

    size=sizeof(arr)/sizeof(arr[0]);      //用数组总占用字节数除去单个元素占用的字节得出数组里元素的数量
    printf("%d\n",size);
    return 0;
}
*/

// int main()          //正着打印数组里的数字
// {
//     int arr[]={1,2,3,4,5,6,7,8,9};
//     int size_t=sizeof(arr)/sizeof(arr[0]);
//     for(int i=0; i<size_t; i++)
//     {
//         printf("%d ",arr[i]);
//     }
//     return 0;
// }

// int main()           // 倒着打印数组里的数字
// {
//     int arr[] = {1, 2, 3, 4, 5, 6, 7, 8, 9};
//     int size = sizeof(arr) / sizeof(arr[0]);
//     int i = 0;
//     for (i = size - 1; i >= 0; i--)
//     {
//         printf("%d ", arr[i]);
//     }
//     return 0;
// }

// int main()  //相同的数据类型
// {
//     //整数
//     int nums[5];
//     //赋值
//     nums[0]=12;
//     //字符数组
//     char array[6]={};
//     array[0]= 'h';
//     array[1]= 'e';
//     array[2]= 'l';
//     array[3]= 'l';
//     array[4]= 'o';
//     //取值
//     printf("%c\n",array[0]);
//     printf("%c\n",array[1]);
//     printf("%c\n",array[2]);
//     printf("%c\n",array[3]);
//     printf("%c\n",array[4]);
//     //数组的内存
//     int size=sizeof(array);
//     printf("%d\n",size);
//     //地址
//     for(int idx=0;idx<6;idx++)
//     {
//         printf("&array[%d]=%p\n",idx, &array[idx]);
//     }
//     return 0;
// }

// 地址
// int main()
// {
//     // int nums[5] = {12, 13, 21, 7};
//     // printf("%p\n", &nums[0]); // 数组名就是数组首元素的地址 //数组名是地址,地址是常亮,常亮不能被改变
//     // printf("%p\n", &nums);
//     // nums[0] = 66;
//     // 二维数组
//     int array[3][4] = {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}};
//     printf("%p\n", array);
//     printf("%p\n", array[0]);
//     printf("%p\n", array[1]);   //总结:二维数组的邻行相差的内存地址取决于每一行的元素个数
//     printf("%p\n", &array[0][0]);
//     //二维数组:数组的数组名 =数组第一行的地址 =数组首元素的地址
//     printf("\n");
//     printf("%p\n", &array[0][1]);
//     printf("%p\n", array[0]+1);
//     return 0;
// }

int main()
{
    char buffer[] = "Hello World Good!"; // 以字符串的方式定义
    // printf("%s\n",buffer);
    int a = buffer[0];
    // printf("%c\n",buffer[0]);
    // printf("%c\n",buffer[0]+3);
    // int length = sizeof(buffer)/sizeof(buffer[0]);
    for (int idx = 0; buffer[idx] != '\0'; idx++)
    {
        if (buffer[idx] >= 'a' && buffer[idx] <= 'z')
        {
            buffer[idx] = buffer[idx] - 32;
        }
    }
    printf("buffer =%s\n", buffer);
    return 0;
}

// int main()
// {
//     char buffer0[]={'C','L','A','S','S','\0'};       //大括号本身没有结束符
//     char buffer1[]={'h','e','l','l','o','w'};
//     char buffer2[]="hellow";

//     printf("%d\n",sizeof(buffer1));
//     printf("%d\n",sizeof(buffer2));

//     printf("%p %s\n",buffer0, buffer0);
//     printf("%p %s\n",buffer1, buffer1);
//     printf("%p %s\n",buffer2, buffer2);
//     return 0;
// }

//总结:字符串是由字符组成的.用双引号""表示,默认'\0'结束
